/**	Clasa ArboriFunctionali 
 * 
 * 	Un  arbore are ca si trasatura predominanta radadina sa. Radacina memoreaza la randul ei doua referinte catre 
 *  fiecare dintre clasele sale fiu. La fel fiecare fiu memoreaza referinte catre fii sai si tot asa mai departe. 
 *  Este la fel ca si in viata reala unde cel mai importanta pentru copac este radacina sa,crengile ramificandu-se 
 *  apoi in mod aleatoriu fara a sti de la inceput incotro se vor orienta. Aceasta este înca un argument în plus 
 *  pentru a motiva de ce un arbore este o structura dinamica de date.
 *  
 */

import q10.Arbori.*;
import q10.Visitor.*;

public class ArboriFunctionali extends Nod{
	protected Nod radacina; /** nodul radacina al arborelui */
	
	/** constructorul cu parametru de tip Nod 
	 * @param radacina			nodul radacina al arborelui
	 * */
	public ArboriFunctionali(Nod radacina)
		{
		this.radacina = radacina;
		}
	
	public void acceptVisitor(Visitor v)
		{
		v.visit(radacina);
		}
	
	/** Metoda public double calculezValoare(double x) 
	 *  apeleaza metoda calcul( ) a  nodului radacina. Înainte de a apela aceasta metoda se seteaza atributul x al 
	 *  nodului radacina cu valoarea transmisa ca si parametru.
	 *  
	 *  @param x
	 *  @return double
	 * */
/*	public double calculezValoare(double x)
	{
		radacina.setX(x);
		return radacina.calcul();
		//return 1;
	}
*/	
	/** functia calculezDerivata seteaza valoarea x primita ca si parametru si returneaza dervata */
/*
	public double calculezDerivata(double x)
	{
		radacina.setX(x);
		return radacina.calculDerivata();
	}
	
	public String derivata()
	{
		return radacina.derivare();
	}

	@Override
	public double calcul() {
		// TODO Auto-generated method stub
		return 0;
	}

	@Override
	public double calculDerivata() {
		// TODO Auto-generated method stub
		return 0;
	}

	@Override
	public String derivare() {
		// TODO Auto-generated method stub
		return radacina.derivare();
		
	}
*/
	@Override
	public String toString() {
		// TODO Auto-generated method stub
		
		return radacina.toString();
		
	}

	
}
